package cn.rokhdelar.umbrsapi.core.dto;


import com.alibaba.fastjson2.JSONArray;
import lombok.Data;
import lombok.ToString;
import org.springframework.data.domain.Page;

import java.io.Serializable;
import java.util.List;
import java.util.Objects;


@ToString
@Data
public class PageResult<T> implements Serializable {
	/**  
	 * serialVersionUID
	 * @author liucy  
	 * @date 2023年12月19日
	 */  
	private static final long serialVersionUID = 1777775173301168404L;


	private List<T> data;



	private Long total;

	public PageResult() {

	}

	/**
	 *  不推荐使用 请使用PageResult(Page pageContent,Class<?> clazz)
	 */
	@Deprecated
	public PageResult(Page pageContent){
		if (null != pageContent) {
			this.total = pageContent.getTotalElements();
			this.data = pageContent.getContent();
		}
	}

	public PageResult(Page pageContent, Class<?> clazz){
		if (null != pageContent) {
			this.total = pageContent.getTotalElements();
			if(Objects.nonNull(clazz)){
				this.data=(List<T>) JSONArray.parseArray(JSONArray.toJSONString(pageContent.getContent()),clazz);
			}else{
				this.data=pageContent.getContent();
			}
		}
	}
	
	
	public PageResult(List<T> data, Long total){
		if (null != data) {
			this.total = total;
			this.data = data;
		}
	}

}
